﻿/*
 * Created by SharpDevelop.
 * User: IEscarro
 * Date: 9/1/2009
 * Time: 7:59 AM
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */

using System;
using Buaya.Model.Dao.Interface;

namespace Buaya.Model.Dao
{
	/// <summary>
	/// Description of DaoFactory.
	/// </summary>
	public class DaoFactory
	{
		public const int NHIBERNATE = 0;
		public const int ACCESS = 1;
		
		public DaoFactory()
		{
		}
		
		public static DaoFactory GetDaoFactory(int type)
		{
			switch (type) {
				case NHIBERNATE:
					return new NHibernateDaoFactory();
				case ACCESS:
					return new AccessDaoFactory();
				default:
					throw new NotSupportedException();
			}
		}
		
		public virtual IPayslipDao CreatePayslipDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual ILoanDao CreateLoanDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IDeductionDao CreateDeductionDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IModuleDao CreateModuleDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IOvertimeDao CreateOvertimeDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IShiftDao CreateShiftDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IBankDao CreateBankDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual ITaxCodeDao CreateTaxCodeDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IWorkersCompensationDao CreateWorkersCompensationDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual ITimesheetDao CreateTimesheetDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual ISSSPremiumDao CreateSSSPremiumDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IPhilhealthPremiumDao CreatePhilhealthPremiumDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IPagIbigPremiumDao CreatePagIbigPremiumDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IPayrollCodeDao CreatePayrollCodeDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IDeductionTypeDao CreateDeductionTypeDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual ILoanTypeDao CreateLoanTypeDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IToDoDao CreateToDoDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual ICompanyDao CreateCompanyDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IEmployeeTypeDao CreateEmployeeTypeDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IUserDao CreateUserDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IDepartmentDao CreateDepartmentDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IPositionDao CreatePositionDao()
		{
			throw new NotImplementedException();
		}
		
		public virtual IEmployeeDao CreateEmployeeDao()
		{
			throw new NotImplementedException();
		}
	}
}
